package cn.jdy.plugins.admin;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import cn.jdy.common.ctrl.BaseCtrl;
import cn.jdy.framework.log.BaseLog;
import cn.jdy.framework.util.DateUtil;
import cn.jdy.platform.entity.FriendLink;
import cn.jdy.platform.service.FriendLinkService;

/**
 * @title 友情链接控制类
 * @date 2014-07-11
 */
@Controller
@RequestMapping("/friendLink")
public class FriendLinkCtrl extends BaseCtrl {

	@Autowired
	private FriendLinkService friendLinkService;// 友情链接分类业务处理类

	public static final int MESSG_SUC = 200;// 操作成功
	public static final int MESSG_FAIL = 201;// 操作失败
	public static final int MESSG_ERROR = 500;// 操作异常

	/**
	 * 初始化主界面
	 * 
	 * @return
	 */
	@RequestMapping("/list/{type}")
	public ModelAndView list(@PathVariable int type) {
		ModelAndView mv = new ModelAndView("/operate/friendLink.jsp");
		mv.addObject("type", type);
		return mv;
	}

	/**
	 * 查询友情链接列表信息
	 * 
	 * @param bo
	 * @return
	 */
	@RequestMapping("/query")
	@ResponseBody
	public Map<String, Object> query(FriendLink bo) {
		Map<String, Object> jsonMap = new HashMap<String, Object>();
		try {
			List<FriendLink> dataList = friendLinkService.query(bo);
			jsonMap.put("dataList", dataList);
			jsonMap.put("iTotalDisplayRecords", friendLinkService.count(bo));
			jsonMap.put("iTotalRecords", friendLinkService.count());
			jsonMap.put("statusCode", MESSG_SUC);// 返回成功信息
		} catch (Exception e) {
			jsonMap.put("statusCode", MESSG_ERROR);// 返回异常信息
			BaseLog.e(this.getClass(), "友情链接查询错误", e);
		}
		return jsonMap;
	}

	/**
	 * 友情链接修改页面初始化
	 * 
	 * @param bo
	 * @return
	 */
	@RequestMapping("/edit")
	public ModelAndView updateskip(FriendLink bo) {
		ModelAndView mv = new ModelAndView("/operate/friendLinkUpdate.jsp");
		mv.addObject("data", friendLinkService.query(bo).get(0));
		return mv;
	}

	/**
	 * 友情链接批量操作（删除、恢复、禁用）
	 * 
	 * @param ids
	 * @param type
	 * @return
	 */
	@RequestMapping("/updBatch")
	@ResponseBody
	public Map<String, Object> updBatch(String ids, int type) {
		Map<String, Object> jsonMap = new HashMap<String, Object>();
		int result = 0;// 数据库操作返回结果

		String[] idArray = ids.split(",");
		try {
			// 添加删除、修改条件
			if (type == 3) { // 删除友情链接
				result = friendLinkService.delete(idArray, "id");
			} else if (type == 2) {// 恢复友情链接
				result = friendLinkService.update(idArray, "status", 0);
			} else if (type == 4) { // 禁用友情链接
				result = friendLinkService.update(idArray, "status", 1);
			}
			if (result > 0) {
				jsonMap.put("statusCode", MESSG_SUC);// 返回成功信息
			} else {
				jsonMap.put("statusCode", MESSG_FAIL);// 返回失败信息
			}
		} catch (Exception e) {
			jsonMap.put("statusCode", MESSG_ERROR);// 返回异常信息
			BaseLog.e(getClass(), "友情链接批量操作异常！", e);
		}
		return jsonMap;
	}

	/**
	 * 友情链接修改信息保存
	 * 
	 * @param bo
	 * @return
	 */
	@RequestMapping("/update")
	@ResponseBody
	public Map<String, Object> updateFriendLink(FriendLink bo) {
		Map<String, Object> jsonMap = new HashMap<String, Object>();
		try {
			friendLinkService.update(bo);
			jsonMap.put("statusCode", MESSG_SUC);// 返回成功信息
		} catch (Exception e) {
			jsonMap.put("statusCode", MESSG_ERROR);// 返回异常信息
			BaseLog.e(getClass(), "友情链接更新异常！", e);
		}
		return jsonMap;
	}

	/**
	 * 添加友情链接分类信息
	 * 
	 * @param friendLink
	 * @return
	 */
	@RequestMapping("/saveFriendLink")
	@ResponseBody
	public Map<String, Object> saveFriendLink(FriendLink friendLink) {
		Map<String, Object> jsonMap = new HashMap<String, Object>();
		try {
			friendLink.setId(null);// 新增需要将实体的id赋值为空
			friendLink.setCreateTime(DateUtil.getCurrentDate(DateUtil._DEFAULT2));
			friendLinkService.save(friendLink);
			jsonMap.put("statusCode", MESSG_SUC);// 返回成功信息
		} catch (Exception e) {
			jsonMap.put("statusCode", MESSG_ERROR);// 返回异常信息
			BaseLog.e(this.getClass(), "添加友情链接信息有误", e);
		}
		return jsonMap;
	}

}